{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "060c6099",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sys import path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "a173f4a8",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['/home/huang/python_code/2023',\n",
       " '/home/huang/anaconda3/lib/python39.zip',\n",
       " '/home/huang/anaconda3/lib/python3.9',\n",
       " '/home/huang/anaconda3/lib/python3.9/lib-dynload',\n",
       " '',\n",
       " '/home/huang/anaconda3/lib/python3.9/site-packages',\n",
       " '/home/huang/anaconda3/lib/python3.9/site-packages/IPython/extensions',\n",
       " '/home/huang/.ipython']"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "id": "a2dda8ad",
   "metadata": {},
   "outputs": [],
   "source": [
    "path.append(\"/home/huang/Documents/packaging_tutorial/src\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "id": "3cf0042e",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['/home/huang/python_code/2023',\n",
       " '/home/huang/anaconda3/lib/python39.zip',\n",
       " '/home/huang/anaconda3/lib/python3.9',\n",
       " '/home/huang/anaconda3/lib/python3.9/lib-dynload',\n",
       " '',\n",
       " '/home/huang/anaconda3/lib/python3.9/site-packages',\n",
       " '/home/huang/anaconda3/lib/python3.9/site-packages/IPython/extensions',\n",
       " '/home/huang/.ipython',\n",
       " '/home/huang/Documents/packaging_tutorial/src']"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "a6e8d1d1",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import *\n",
    "from sympy.abc import x,y,z,a,b,c,m,n,k,t"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ac92813c",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy.calculus.util import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ec3b3f53",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on function continuous_domain in module sympy.calculus.util:\n",
      "\n",
      "continuous_domain(f, symbol, domain)\n",
      "    Returns the intervals in the given domain for which the function\n",
      "    is continuous.\n",
      "    This method is limited by the ability to determine the various\n",
      "    singularities and discontinuities of the given function.\n",
      "    \n",
      "    Parameters\n",
      "    ==========\n",
      "    \n",
      "    f : :py:class:`~.Expr`\n",
      "        The concerned function.\n",
      "    symbol : :py:class:`~.Symbol`\n",
      "        The variable for which the intervals are to be determined.\n",
      "    domain : :py:class:`~.Interval`\n",
      "        The domain over which the continuity of the symbol has to be checked.\n",
      "    \n",
      "    Examples\n",
      "    ========\n",
      "    \n",
      "    >>> from sympy import Interval, Symbol, S, tan, log, pi, sqrt\n",
      "    >>> from sympy.calculus.util import continuous_domain\n",
      "    >>> x = Symbol('x')\n",
      "    >>> continuous_domain(1/x, x, S.Reals)\n",
      "    Union(Interval.open(-oo, 0), Interval.open(0, oo))\n",
      "    >>> continuous_domain(tan(x), x, Interval(0, pi))\n",
      "    Union(Interval.Ropen(0, pi/2), Interval.Lopen(pi/2, pi))\n",
      "    >>> continuous_domain(sqrt(x - 2), x, Interval(-5, 5))\n",
      "    Interval(2, 5)\n",
      "    >>> continuous_domain(log(2*x - 1), x, S.Reals)\n",
      "    Interval.open(1/2, oo)\n",
      "    \n",
      "    Returns\n",
      "    =======\n",
      "    \n",
      "    :py:class:`~.Interval`\n",
      "        Union of all intervals where the function is continuous.\n",
      "    \n",
      "    Raises\n",
      "    ======\n",
      "    \n",
      "    NotImplementedError\n",
      "        If the method to determine continuity of such a function\n",
      "        has not yet been developed.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(continuous_domain)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "07cd29ea",
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=sqrt(3*x-6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "f696a3c6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[2, \\infty\\right)$"
      ],
      "text/plain": [
       "Interval(2, oo)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "continuous_domain(expr,x,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "3fe53d41",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\text{False}$"
      ],
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Eq(sqrt(4+9),2+3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "08368b6f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\text{True}$"
      ],
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Eq(sqrt(4*9),2*3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "b0f848d5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\text{False}$"
      ],
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Eq(sqrt(9**4),sqrt(3**2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "42df6052",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\text{False}$"
      ],
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Eq(sqrt(S(4.9)),S(0.7))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "c48fb192",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\text{True}$"
      ],
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a=symbols(\"a\",positive=True)\n",
    "a>0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "fd4f9977",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\text{True}$"
      ],
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b=symbols(\"b\",negative=True)\n",
    "b<0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "9c59bc48",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle a - b$"
      ],
      "text/plain": [
       "a - b"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr=(sqrt(a))**2+sqrt(b**2)\n",
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "c14dbfe5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2 x + y}{5 x - 2 y}$"
      ],
      "text/plain": [
       "(2*x + y)/(5*x - 2*y)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr=(2*x+y)/(5*x-2*y)\n",
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "b61c0794",
   "metadata": {},
   "outputs": [],
   "source": [
    "answer=expr.subs(y,sqrt(x-1)+sqrt(1-x)+10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "839a76d4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{4}{5}$"
      ],
      "text/plain": [
       "-4/5"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "answer.subs(x,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "64729cfd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{1\\right\\}$"
      ],
      "text/plain": [
       "{1}"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(Eq(answer,-Rational(4,5)),x,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "8050a03f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle y^{2} - 4 y + \\sqrt{x + 3} + 4 = 0$"
      ],
      "text/plain": [
       "Eq(y**2 - 4*y + sqrt(x + 3) + 4, 0)"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq1=Eq(sqrt(x+3)+y**2-4*y+4,0)\n",
    "eq1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "a88407db",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle m = \\sqrt{18 n + 9}$"
      ],
      "text/plain": [
       "Eq(m, sqrt(18*n + 9))"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq2=Eq(m,sqrt(9+18*n))\n",
    "eq2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "2d796a81",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\frac{3}{2}\\right\\}$"
      ],
      "text/plain": [
       "{3/2}"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(eq2.subs(m,6),n,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "8246c4d2",
   "metadata": {},
   "outputs": [],
   "source": [
    "x,y=symbols(\"x,y\",negative=True,nature=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "e3d05fa3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\text{True}$"
      ],
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y<0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "7cf473bf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\sqrt{- y}$"
      ],
      "text/plain": [
       "-sqrt(-y)"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x*sqrt(-y/x**2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "007e9e9d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\sqrt{10} + 4$"
      ],
      "text/plain": [
       "sqrt(10) + 4"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sqrt(32)*sqrt(Rational(1,2))+sqrt(2)*sqrt(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "31bdd482",
   "metadata": {},
   "outputs": [],
   "source": [
    "expr=(sqrt(3)-2)**2023*(sqrt(3)+2)**2023"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "3da074fa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle -1$"
      ],
      "text/plain": [
       "-1"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(expr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "a314f40c",
   "metadata": {},
   "outputs": [],
   "source": [
    "x=symbols(\"x\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "c2a0a0db",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7effe3181df0>"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr=sqrt((16-x)**2)+sqrt((x-13)**2)\n",
    "plot(expr,(x,-1,20))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "89277645",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 3$"
      ],
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr.subs(x,15)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "56fa9789",
   "metadata": {},
   "outputs": [],
   "source": [
    "a,b=symbols(\"a,b\",positive=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "a15b8b66",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - a^{2} b$"
      ],
      "text/plain": [
       "-a**2*b"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr=2*sqrt(a*b**2)/(3*sqrt(b/a))*(-Rational(3,2)*sqrt(a**2*b))\n",
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "e0b36f5e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 2 \\sqrt{3}$"
      ],
      "text/plain": [
       "2*sqrt(3)"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "2*sqrt(12)+(3*sqrt(1+Rational(1,3)))-sqrt(5+Rational(1,3))-(Rational(2,3)*sqrt(48))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2d6dd2c9",
   "metadata": {},
   "source": [
    "看来分母有理化还是不行。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "0fd8e6b6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\frac{4}{- \\sqrt{15} + \\sqrt{11}}$"
      ],
      "text/plain": [
       "-4/(-sqrt(15) + sqrt(11))"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(4/(sqrt(15)-sqrt(11)))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9ac9db7a",
   "metadata": {},
   "source": [
    "要用radsimp！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "bcb2b7af",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\sqrt{11} + \\sqrt{15}$"
      ],
      "text/plain": [
       "sqrt(11) + sqrt(15)"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "radsimp(4/(sqrt(15)-sqrt(11)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "002a4466",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2}{\\sqrt{2 n - 1} + \\sqrt{2 n + 1}}$"
      ],
      "text/plain": [
       "2/(sqrt(2*n - 1) + sqrt(2*n + 1))"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr=2/(sqrt(2*n+1)+sqrt(2*n-1))\n",
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "062d8fd5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - \\sqrt{2 n - 1} + \\sqrt{2 n + 1}$"
      ],
      "text/plain": [
       "-sqrt(2*n - 1) + sqrt(2*n + 1)"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "radsimp(expr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "6a0e6f0f",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on function summation in module sympy.concrete.summations:\n",
      "\n",
      "summation(f, *symbols, **kwargs)\n",
      "    Compute the summation of f with respect to symbols.\n",
      "    \n",
      "    Explanation\n",
      "    ===========\n",
      "    \n",
      "    The notation for symbols is similar to the notation used in Integral.\n",
      "    summation(f, (i, a, b)) computes the sum of f with respect to i from a to b,\n",
      "    i.e.,\n",
      "    \n",
      "    ::\n",
      "    \n",
      "                                    b\n",
      "                                  ____\n",
      "                                  \\   `\n",
      "        summation(f, (i, a, b)) =  )    f\n",
      "                                  /___,\n",
      "                                  i = a\n",
      "    \n",
      "    If it cannot compute the sum, it returns an unevaluated Sum object.\n",
      "    Repeated sums can be computed by introducing additional symbols tuples::\n",
      "    \n",
      "    Examples\n",
      "    ========\n",
      "    \n",
      "    >>> from sympy import summation, oo, symbols, log\n",
      "    >>> i, n, m = symbols('i n m', integer=True)\n",
      "    \n",
      "    >>> summation(2*i - 1, (i, 1, n))\n",
      "    n**2\n",
      "    >>> summation(1/2**i, (i, 0, oo))\n",
      "    2\n",
      "    >>> summation(1/log(n)**n, (n, 2, oo))\n",
      "    Sum(log(n)**(-n), (n, 2, oo))\n",
      "    >>> summation(i, (i, 0, n), (n, 0, m))\n",
      "    m**3/6 + m**2/2 + m/3\n",
      "    \n",
      "    >>> from sympy.abc import x\n",
      "    >>> from sympy import factorial\n",
      "    >>> summation(x**n/factorial(n), (n, 0, oo))\n",
      "    exp(x)\n",
      "    \n",
      "    See Also\n",
      "    ========\n",
      "    \n",
      "    Sum\n",
      "    Product, sympy.concrete.products.product\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(summation)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "id": "9448b030",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\sqrt{2 n + 1} - 1$"
      ],
      "text/plain": [
       "sqrt(2*n + 1) - 1"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(summation(radsimp(expr),(n,1,n)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "23c7c1fe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle -1 + 3 \\sqrt{11}$"
      ],
      "text/plain": [
       "-1 + 3*sqrt(11)"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(summation(radsimp(expr),(n,1,n))).subs(n,49)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "5b03e7a5",
   "metadata": {},
   "outputs": [],
   "source": [
    "def is_rectangle(a,b,c):\n",
    "    # you should let a=<b<c\n",
    "    if Eq(a**2+b**2,c**2):\n",
    "        return True\n",
    "    else:\n",
    "        return False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "7286d48c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "is_rectangle(Rational(1,3),Rational(1,4),Rational(1,5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "fbd43e44",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "is_rectangle(5,12,13)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "id": "c11d9e3e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "is_rectangle(4,5,6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "5543b83d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "is_rectangle(1,sqrt(2),2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "fa006332",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 2, 3, 6]"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "divisors(6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "3d806bfe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{2: 1, 3: 1}"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factorint(6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "fda42a00",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{17: 2}"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "factorint(289)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "99c8927d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 6.4$"
      ],
      "text/plain": [
       "6.40000000000000"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(120+200)/(180/S(3.6))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "3f9482cd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "334.4"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "8.36*40"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "0578a770",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle y = m - 2 x$"
      ],
      "text/plain": [
       "Eq(y, m - 2*x)"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq3=Eq(y,-2*x+m)\n",
    "eq3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "02dcf342",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 3 = m + 4$"
      ],
      "text/plain": [
       "Eq(3, m + 4)"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq3.subs([(x,-2),(y,3)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "id": "8b3b4ea7",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy.stats import FiniteRV,E,P"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "id": "da1d6791",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on function FiniteRV in module sympy.stats.frv_types:\n",
      "\n",
      "FiniteRV(name, density, **kwargs)\n",
      "    Create a Finite Random Variable given a dict representing the density.\n",
      "    \n",
      "    Parameters\n",
      "    ==========\n",
      "    \n",
      "    name : Symbol\n",
      "        Represents name of the random variable.\n",
      "    density : dict\n",
      "        Dictionary containing the pdf of finite distribution\n",
      "    check : bool\n",
      "        If True, it will check whether the given density\n",
      "        integrates to 1 over the given set. If False, it\n",
      "        will not perform this check. Default is False.\n",
      "    \n",
      "    Examples\n",
      "    ========\n",
      "    \n",
      "    >>> from sympy.stats import FiniteRV, P, E\n",
      "    \n",
      "    >>> density = {0: .1, 1: .2, 2: .3, 3: .4}\n",
      "    >>> X = FiniteRV('X', density)\n",
      "    \n",
      "    >>> E(X)\n",
      "    2.00000000000000\n",
      "    >>> P(X >= 2)\n",
      "    0.700000000000000\n",
      "    \n",
      "    Returns\n",
      "    =======\n",
      "    \n",
      "    RandomSymbol\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(FiniteRV)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "4692ffc8",
   "metadata": {},
   "outputs": [],
   "source": [
    "density={0:0.3,1:0.4,2:0.2,3:0.1}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "65fe4bfc",
   "metadata": {},
   "outputs": [],
   "source": [
    "X=FiniteRV(\"X\",density)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "40781e04",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 1.1$"
      ],
      "text/plain": [
       "1.10000000000000"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "E(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "id": "05e76c25",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[9, 8, 8, 7.5, 8, 9, 10]"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_a=[9,8,8,7.5,8,9,10]\n",
    "data_a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "35c9a185",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_a.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "59047f50",
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "id": "c9a8a408",
   "metadata": {},
   "outputs": [],
   "source": [
    "from excel_function_package.data import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "id": "5bb834da",
   "metadata": {},
   "outputs": [],
   "source": [
    "%aimport excel_function_package.data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "id": "1f060365",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[7.5, 8, 8, 8, 9, 9, 10]"
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "1ec964b5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8.5"
      ]
     },
     "execution_count": 122,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Data(data_a).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "id": "ea7f82d9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "255.0"
      ]
     },
     "execution_count": 124,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Data(data_a).mean()*30"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "id": "27d82b7a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{1}{30}$"
      ],
      "text/plain": [
       "1/30"
      ]
     },
     "execution_count": 130,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Rational(3200*0.1,9600)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "id": "22845aab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 240$"
      ],
      "text/plain": [
       "240"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "108*100/S(45)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "id": "7d7d93ba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{0: 0.1, 3: 0.25, 5: 0.45, 8: 0.2}"
      ]
     },
     "execution_count": 135,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "density={0:0.1,3:0.25,5:0.45,8:0.2}\n",
    "density"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "id": "df9dcda5",
   "metadata": {},
   "outputs": [],
   "source": [
    "X=FiniteRV(\"X\",density)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "id": "d9a47465",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 0.575$"
      ],
      "text/plain": [
       "0.575000000000000"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "E(X)/S(8)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "id": "2de66e96",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{23}{40}$"
      ],
      "text/plain": [
       "23/40"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Rational(E(X)/S(8)).limit_denominator(100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "id": "37d82e98",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_a=Data([36,70,58,42,58,28,75,83])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "id": "f62b8bf0",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_a.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "id": "77d6cadf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[28, 36, 42, 58, 58, 70, 75, 83]"
      ]
     },
     "execution_count": 147,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "id": "f7afa445",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "55"
      ]
     },
     "execution_count": 159,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_a.range()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "id": "bb9cc190",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_b=Data([20.9,21.7,21,20.6,21.1,21.3,20.5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "id": "f7347adf",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_b.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "id": "eb2eed49",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 147.1$"
      ],
      "text/plain": [
       "147.100000000000"
      ]
     },
     "execution_count": 163,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sum(S(data_b))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "id": "4a58d9eb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[20.5, 20.6, 20.9, 21, 21.1, 21.3, 21.7]"
      ]
     },
     "execution_count": 171,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "id": "9b8754b1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 1.2$"
      ],
      "text/plain": [
       "1.20000000000000"
      ]
     },
     "execution_count": 173,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "S(data_b.range())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "id": "5122a85e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 3, 5, a, 8]"
      ]
     },
     "execution_count": 174,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_c=Data([1,3,5,a,8])\n",
    "data_c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "id": "a8d8174d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{8\\right\\}$"
      ],
      "text/plain": [
       "{8}"
      ]
     },
     "execution_count": 176,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(Eq(data_c.mean(),5),a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 178,
   "id": "bffb9b0c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[1, 3, 5, 8, 8]"
      ]
     },
     "execution_count": 178,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_c=Data([1,3,5,8,8])\n",
    "data_c"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "id": "caa3b822",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 7.6$"
      ],
      "text/plain": [
       "7.60000000000000"
      ]
     },
     "execution_count": 179,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_c.variance(sample=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "id": "fe94f050",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[11, 13, 15, 18, 18]"
      ]
     },
     "execution_count": 180,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_d=Data([11,13,15,18,18])\n",
    "data_d"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "id": "2f5e79a2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 15$"
      ],
      "text/plain": [
       "15"
      ]
     },
     "execution_count": 184,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "S(S(data_d).mean())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "id": "0b2a183c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 7.6$"
      ],
      "text/plain": [
       "7.60000000000000"
      ]
     },
     "execution_count": 182,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_d.variance(sample=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 185,
   "id": "eed5185e",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_a=Data([588,597,608,610,597])\n",
    "data_b=Data([613,618,580,574,618])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "id": "b93ab855",
   "metadata": {},
   "outputs": [],
   "source": [
    "data_a.sort()\n",
    "data_b.sort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 189,
   "id": "1dc971e8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[588, 597, 597, 608, 610]"
      ]
     },
     "execution_count": 189,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "id": "423ff0e0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[574, 580, 613, 618, 618]"
      ]
     },
     "execution_count": 190,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_b"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 191,
   "id": "73d8dbf2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "600.0"
      ]
     },
     "execution_count": 191,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_a.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 192,
   "id": "8534de2b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "600.6"
      ]
     },
     "execution_count": 192,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_b.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "id": "9c09fd14",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 65.2$"
      ],
      "text/plain": [
       "65.2000000000000"
      ]
     },
     "execution_count": 193,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_a.variance(sample=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "id": "36ca84e7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 378.24$"
      ],
      "text/plain": [
       "378.240000000000"
      ]
     },
     "execution_count": 194,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_b.variance(sample=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 196,
   "id": "9999a21d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.1420454545454546"
      ]
     },
     "execution_count": 196,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "2212/704"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 197,
   "id": "d8a93432",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on function integrate in module sympy.integrals.integrals:\n",
      "\n",
      "integrate(*args, meijerg=None, conds='piecewise', risch=None, heurisch=None, manual=None, **kwargs)\n",
      "    integrate(f, var, ...)\n",
      "    \n",
      "    .. deprecated:: 1.6\n",
      "    \n",
      "       Using ``integrate()`` with :class:`~.Poly` is deprecated. Use\n",
      "       :meth:`.Poly.integrate` instead. See :ref:`deprecated-integrate-poly`.\n",
      "    \n",
      "    Explanation\n",
      "    ===========\n",
      "    \n",
      "    Compute definite or indefinite integral of one or more variables\n",
      "    using Risch-Norman algorithm and table lookup. This procedure is\n",
      "    able to handle elementary algebraic and transcendental functions\n",
      "    and also a huge class of special functions, including Airy,\n",
      "    Bessel, Whittaker and Lambert.\n",
      "    \n",
      "    var can be:\n",
      "    \n",
      "    - a symbol                   -- indefinite integration\n",
      "    - a tuple (symbol, a)        -- indefinite integration with result\n",
      "                                    given with ``a`` replacing ``symbol``\n",
      "    - a tuple (symbol, a, b)     -- definite integration\n",
      "    \n",
      "    Several variables can be specified, in which case the result is\n",
      "    multiple integration. (If var is omitted and the integrand is\n",
      "    univariate, the indefinite integral in that variable will be performed.)\n",
      "    \n",
      "    Indefinite integrals are returned without terms that are independent\n",
      "    of the integration variables. (see examples)\n",
      "    \n",
      "    Definite improper integrals often entail delicate convergence\n",
      "    conditions. Pass conds='piecewise', 'separate' or 'none' to have\n",
      "    these returned, respectively, as a Piecewise function, as a separate\n",
      "    result (i.e. result will be a tuple), or not at all (default is\n",
      "    'piecewise').\n",
      "    \n",
      "    **Strategy**\n",
      "    \n",
      "    SymPy uses various approaches to definite integration. One method is to\n",
      "    find an antiderivative for the integrand, and then use the fundamental\n",
      "    theorem of calculus. Various functions are implemented to integrate\n",
      "    polynomial, rational and trigonometric functions, and integrands\n",
      "    containing DiracDelta terms.\n",
      "    \n",
      "    SymPy also implements the part of the Risch algorithm, which is a decision\n",
      "    procedure for integrating elementary functions, i.e., the algorithm can\n",
      "    either find an elementary antiderivative, or prove that one does not\n",
      "    exist.  There is also a (very successful, albeit somewhat slow) general\n",
      "    implementation of the heuristic Risch algorithm.  This algorithm will\n",
      "    eventually be phased out as more of the full Risch algorithm is\n",
      "    implemented. See the docstring of Integral._eval_integral() for more\n",
      "    details on computing the antiderivative using algebraic methods.\n",
      "    \n",
      "    The option risch=True can be used to use only the (full) Risch algorithm.\n",
      "    This is useful if you want to know if an elementary function has an\n",
      "    elementary antiderivative.  If the indefinite Integral returned by this\n",
      "    function is an instance of NonElementaryIntegral, that means that the\n",
      "    Risch algorithm has proven that integral to be non-elementary.  Note that\n",
      "    by default, additional methods (such as the Meijer G method outlined\n",
      "    below) are tried on these integrals, as they may be expressible in terms\n",
      "    of special functions, so if you only care about elementary answers, use\n",
      "    risch=True.  Also note that an unevaluated Integral returned by this\n",
      "    function is not necessarily a NonElementaryIntegral, even with risch=True,\n",
      "    as it may just be an indication that the particular part of the Risch\n",
      "    algorithm needed to integrate that function is not yet implemented.\n",
      "    \n",
      "    Another family of strategies comes from re-writing the integrand in\n",
      "    terms of so-called Meijer G-functions. Indefinite integrals of a\n",
      "    single G-function can always be computed, and the definite integral\n",
      "    of a product of two G-functions can be computed from zero to\n",
      "    infinity. Various strategies are implemented to rewrite integrands\n",
      "    as G-functions, and use this information to compute integrals (see\n",
      "    the ``meijerint`` module).\n",
      "    \n",
      "    The option manual=True can be used to use only an algorithm that tries\n",
      "    to mimic integration by hand. This algorithm does not handle as many\n",
      "    integrands as the other algorithms implemented but may return results in\n",
      "    a more familiar form. The ``manualintegrate`` module has functions that\n",
      "    return the steps used (see the module docstring for more information).\n",
      "    \n",
      "    In general, the algebraic methods work best for computing\n",
      "    antiderivatives of (possibly complicated) combinations of elementary\n",
      "    functions. The G-function methods work best for computing definite\n",
      "    integrals from zero to infinity of moderately complicated\n",
      "    combinations of special functions, or indefinite integrals of very\n",
      "    simple combinations of special functions.\n",
      "    \n",
      "    The strategy employed by the integration code is as follows:\n",
      "    \n",
      "    - If computing a definite integral, and both limits are real,\n",
      "      and at least one limit is +- oo, try the G-function method of\n",
      "      definite integration first.\n",
      "    \n",
      "    - Try to find an antiderivative, using all available methods, ordered\n",
      "      by performance (that is try fastest method first, slowest last; in\n",
      "      particular polynomial integration is tried first, Meijer\n",
      "      G-functions second to last, and heuristic Risch last).\n",
      "    \n",
      "    - If still not successful, try G-functions irrespective of the\n",
      "      limits.\n",
      "    \n",
      "    The option meijerg=True, False, None can be used to, respectively:\n",
      "    always use G-function methods and no others, never use G-function\n",
      "    methods, or use all available methods (in order as described above).\n",
      "    It defaults to None.\n",
      "    \n",
      "    Examples\n",
      "    ========\n",
      "    \n",
      "    >>> from sympy import integrate, log, exp, oo\n",
      "    >>> from sympy.abc import a, x, y\n",
      "    \n",
      "    >>> integrate(x*y, x)\n",
      "    x**2*y/2\n",
      "    \n",
      "    >>> integrate(log(x), x)\n",
      "    x*log(x) - x\n",
      "    \n",
      "    >>> integrate(log(x), (x, 1, a))\n",
      "    a*log(a) - a + 1\n",
      "    \n",
      "    >>> integrate(x)\n",
      "    x**2/2\n",
      "    \n",
      "    Terms that are independent of x are dropped by indefinite integration:\n",
      "    \n",
      "    >>> from sympy import sqrt\n",
      "    >>> integrate(sqrt(1 + x), (x, 0, x))\n",
      "    2*(x + 1)**(3/2)/3 - 2/3\n",
      "    >>> integrate(sqrt(1 + x), x)\n",
      "    2*(x + 1)**(3/2)/3\n",
      "    \n",
      "    >>> integrate(x*y)\n",
      "    Traceback (most recent call last):\n",
      "    ...\n",
      "    ValueError: specify integration variables to integrate x*y\n",
      "    \n",
      "    Note that ``integrate(x)`` syntax is meant only for convenience\n",
      "    in interactive sessions and should be avoided in library code.\n",
      "    \n",
      "    >>> integrate(x**a*exp(-x), (x, 0, oo)) # same as conds='piecewise'\n",
      "    Piecewise((gamma(a + 1), re(a) > -1),\n",
      "        (Integral(x**a*exp(-x), (x, 0, oo)), True))\n",
      "    \n",
      "    >>> integrate(x**a*exp(-x), (x, 0, oo), conds='none')\n",
      "    gamma(a + 1)\n",
      "    \n",
      "    >>> integrate(x**a*exp(-x), (x, 0, oo), conds='separate')\n",
      "    (gamma(a + 1), re(a) > -1)\n",
      "    \n",
      "    See Also\n",
      "    ========\n",
      "    \n",
      "    Integral, Integral.doit\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(integrate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "id": "6803cd89",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 1$"
      ],
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 199,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "integrate(cos(x),(x,0,pi/2))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 202,
   "id": "aa098e31",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{2}{\\pi}$"
      ],
      "text/plain": [
       "2/pi"
      ]
     },
     "execution_count": 202,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "integrate(2/pi*acos(x),(x,0,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "id": "6e0ffaf6",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7effe2df93a0>"
      ]
     },
     "execution_count": 200,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(acos(x),(x,-1,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "id": "c21e9910",
   "metadata": {},
   "outputs": [],
   "source": [
    "def compare_game(a,b):\n",
    "    if(Eq(sum(a),sum(b))):\n",
    "       raise InputError\n",
    "    elif(sum(a)>sum(b)):\n",
    "       return True\n",
    "    else:\n",
    "       return False\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 206,
   "id": "ff0570f5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 206,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "compare_game([3*sqrt(2),-sqrt(2),-2*sqrt(2),Rational(1,2)],[2*sqrt(5),-Rational(3,2)*sqrt(5),3,-Rational(7,2)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 211,
   "id": "4a554290",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 4 \\sqrt[3]{-1}$"
      ],
      "text/plain": [
       "4*(-1)**(1/3)"
      ]
     },
     "execution_count": 211,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "-1+sqrt((sqrt(3)-3)**2)+pow((-4)**3,Rational(1,3))-abs(sqrt(3)-2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 213,
   "id": "53d5e758",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{- \\frac{1}{2}, \\frac{5}{2}\\right\\}$"
      ],
      "text/plain": [
       "{-1/2, 5/2}"
      ]
     },
     "execution_count": 213,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(Eq((x-1)**2,Rational(9,4)),x,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 214,
   "id": "135698ed",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle - 2 m + n + 2 \\sqrt{7}$"
      ],
      "text/plain": [
       "-2*m + n + 2*sqrt(7)"
      ]
     },
     "execution_count": 214,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr=n-2*m+2*sqrt(7)\n",
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 215,
   "id": "61b22e6f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 8$"
      ],
      "text/plain": [
       "8"
      ]
     },
     "execution_count": 215,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr.subs([(n,4),(m,sqrt(7)-2)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 216,
   "id": "b2f4ad25",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\frac{3 m}{2} + \\frac{n}{2}$"
      ],
      "text/plain": [
       "3*m/2 + n/2"
      ]
     },
     "execution_count": 216,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr1=(m+n)/2+m\n",
    "expr1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 217,
   "id": "7404c829",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle -1 + \\frac{3 \\sqrt{7}}{2}$"
      ],
      "text/plain": [
       "-1 + 3*sqrt(7)/2"
      ]
     },
     "execution_count": 217,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr1.subs([(n,4),(m,sqrt(7)-2)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 218,
   "id": "4a1f31c7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x^{2} - 2 y + \\sqrt{5} y = 3 \\sqrt{5} + 10$"
      ],
      "text/plain": [
       "Eq(x**2 - 2*y + sqrt(5)*y, 3*sqrt(5) + 10)"
      ]
     },
     "execution_count": 218,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq4=Eq(x**2-2*y+sqrt(5)*y,10+3*sqrt(5))\n",
    "eq4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 219,
   "id": "2e3722a5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x^{2} - 2 y + \\sqrt{5} y - 10 - 3 \\sqrt{5}$"
      ],
      "text/plain": [
       "x**2 - 2*y + sqrt(5)*y - 10 - 3*sqrt(5)"
      ]
     },
     "execution_count": 219,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr=eq4.lhs-eq4.rhs\n",
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 222,
   "id": "47698476",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x^{2} - 2 y + \\sqrt{5} y - 10 - 3 \\sqrt{5}$"
      ],
      "text/plain": [
       "x**2 - 2*y + sqrt(5)*y - 10 - 3*sqrt(5)"
      ]
     },
     "execution_count": 222,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "simplify(expr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 223,
   "id": "747227c3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle m x + n y = 5$"
      ],
      "text/plain": [
       "Eq(m*x + n*y, 5)"
      ]
     },
     "execution_count": 223,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq0=Eq(m*x+n*y,5)\n",
    "eq0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 231,
   "id": "81469eb1",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( 1, \\  1\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(1, 1)}"
      ]
     },
     "execution_count": 231,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([eq0.subs([(x,2),(y,3)]),eq0.subs([(x,3),(y,2)])],[m,n])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 232,
   "id": "b0a1194d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( 6, \\  -3\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(6, -3)}"
      ]
     },
     "execution_count": 232,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([x+2*y,3*x+4*y-6],[x,y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 233,
   "id": "3173034b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( 10, \\  \\frac{8}{3}\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(10, 8/3)}"
      ]
     },
     "execution_count": 233,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([x/3+y/4-4,2*x-3*y-12],[x,y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 234,
   "id": "e0834f4b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( -7, \\  -10\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(-7, -10)}"
      ]
     },
     "execution_count": 234,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([y-2*x-4,x-y-3],[x,y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 235,
   "id": "ebfb60e6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 3 x - 2 y = 2 k + 1$"
      ],
      "text/plain": [
       "Eq(3*x - 2*y, 2*k + 1)"
      ]
     },
     "execution_count": 235,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq6=Eq(3*x-2*y,2*k+1)\n",
    "eq6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 236,
   "id": "998bc2aa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle -1 = 2 k + 1$"
      ],
      "text/plain": [
       "Eq(-1, 2*k + 1)"
      ]
     },
     "execution_count": 236,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq6.subs([(x,-7),(y,-10)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 237,
   "id": "c94d7829",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( 5, \\  3\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(5, 3)}"
      ]
     },
     "execution_count": 237,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([2*x+3*y-19,3*x-2*y-9],[x,y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 238,
   "id": "db0bbb5a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( 1, \\  -2\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(1, -2)}"
      ]
     },
     "execution_count": 238,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([5*a+3*b+1,5*b+3*a+7],[a,b])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 245,
   "id": "e5e9a1e3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[\\begin{matrix}3 & 0 & 4\\\\2 & 1 & 1\\\\3 & -3 & 7\\end{matrix}\\right]$"
      ],
      "text/plain": [
       "Matrix([\n",
       "[3,  0, 4],\n",
       "[2,  1, 1],\n",
       "[3, -3, 7]])"
      ]
     },
     "execution_count": 245,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A=Matrix([[3,0,4],[2,1,1],[3,-3,7]])\n",
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 246,
   "id": "4ec12f5d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[\\begin{matrix}7\\\\9\\\\-2\\end{matrix}\\right]$"
      ],
      "text/plain": [
       "Matrix([\n",
       "[ 7],\n",
       "[ 9],\n",
       "[-2]])"
      ]
     },
     "execution_count": 246,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B=Matrix([7,9,-2])\n",
    "B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 247,
   "id": "4eaa2a75",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( 5, \\  1, \\  -2\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(5, 1, -2)}"
      ]
     },
     "execution_count": 247,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve((A,B),[x,y,z])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 248,
   "id": "8652d92a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[\\begin{matrix}2 & 3\\\\1 & -1\\end{matrix}\\right]$"
      ],
      "text/plain": [
       "Matrix([\n",
       "[2,  3],\n",
       "[1, -1]])"
      ]
     },
     "execution_count": 248,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A=Matrix([[2,3],[1,-1]])\n",
    "A"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 249,
   "id": "6369c976",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[\\begin{matrix}3 m + 7\\\\4 m + 1\\end{matrix}\\right]$"
      ],
      "text/plain": [
       "Matrix([\n",
       "[3*m + 7],\n",
       "[4*m + 1]])"
      ]
     },
     "execution_count": 249,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "B=Matrix([3*m+7,4*m+1])\n",
    "B"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 250,
   "id": "f87f1eda",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( 3 m + 2, \\  1 - m\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(3*m + 2, 1 - m)}"
      ]
     },
     "execution_count": 250,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve((A,B),[x,y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 252,
   "id": "446e69ab",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<sympy.plotting.plot.Plot at 0x7efff648e9d0>"
      ]
     },
     "execution_count": 252,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(abs(m-1)+abs(m+Rational(2,3)),(m,-3,3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 253,
   "id": "62fcc4bb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle x + y = 50$"
      ],
      "text/plain": [
       "Eq(x + y, 50)"
      ]
     },
     "execution_count": 253,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq1=Eq(x+y,50)\n",
    "eq1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 254,
   "id": "a7f07b4c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 5 x + 7 y = 300$"
      ],
      "text/plain": [
       "Eq(5*x + 7*y, 300)"
      ]
     },
     "execution_count": 254,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq_first=Eq(5*x+7*y,300)\n",
    "eq_first"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 255,
   "id": "c461c45a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 3 x + 5 y = 180$"
      ],
      "text/plain": [
       "Eq(3*x + 5*y, 180)"
      ]
     },
     "execution_count": 255,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eq_second=Eq(3*x+5*y,180)\n",
    "eq_second"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 256,
   "id": "c5812593",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( 25, \\  25\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(25, 25)}"
      ]
     },
     "execution_count": 256,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([eq1,eq_first],[x,y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 257,
   "id": "f1846dc7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( 35, \\  15\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(35, 15)}"
      ]
     },
     "execution_count": 257,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([eq1,eq_second],[x,y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 258,
   "id": "be31a5dc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle 70 x + 600$"
      ],
      "text/plain": [
       "70*x + 600"
      ]
     },
     "execution_count": 258,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "expr=20*(2*x+30)+30*x\n",
    "expr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 261,
   "id": "286fd0b0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{1, 2, \\ldots, 40\\right\\}$"
      ],
      "text/plain": [
       "Range(1, 41, 1)"
      ]
     },
     "execution_count": 261,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(expr<=3400,x,Naturals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 266,
   "id": "2d9b2134",
   "metadata": {},
   "outputs": [],
   "source": [
    "A=solveset(x-3*(x-2)>=4,x,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 267,
   "id": "1b9cf53d",
   "metadata": {},
   "outputs": [],
   "source": [
    "B=solveset((2*x-1)/5<(x+1)/2,x,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 268,
   "id": "845dac27",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(-7, 1\\right]$"
      ],
      "text/plain": [
       "Interval.Lopen(-7, 1)"
      ]
     },
     "execution_count": 268,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "A.intersect(B)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 274,
   "id": "10413bcb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( \\frac{55}{6} - \\frac{25 y}{72}, \\  y\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(55/6 - 25*y/72, y)}"
      ]
     },
     "execution_count": 274,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([Rational(8*9,10)*x+Rational(10,4)*y-66],[x,y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 275,
   "id": "0290f315",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left[-2, \\infty\\right)$"
      ],
      "text/plain": [
       "Interval(-2, oo)"
      ]
     },
     "execution_count": 275,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset((2*x-1)/3<=(9*x+8)/6,x,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 276,
   "id": "8d890567",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy.solvers.inequalities import solve_univariate_inequality"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 277,
   "id": "412db365",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on function solve_univariate_inequality in module sympy.solvers.inequalities:\n",
      "\n",
      "solve_univariate_inequality(expr, gen, relational=True, domain=Reals, continuous=False)\n",
      "    Solves a real univariate inequality.\n",
      "    \n",
      "    Parameters\n",
      "    ==========\n",
      "    \n",
      "    expr : Relational\n",
      "        The target inequality\n",
      "    gen : Symbol\n",
      "        The variable for which the inequality is solved\n",
      "    relational : bool\n",
      "        A Relational type output is expected or not\n",
      "    domain : Set\n",
      "        The domain over which the equation is solved\n",
      "    continuous: bool\n",
      "        True if expr is known to be continuous over the given domain\n",
      "        (and so continuous_domain() does not need to be called on it)\n",
      "    \n",
      "    Raises\n",
      "    ======\n",
      "    \n",
      "    NotImplementedError\n",
      "        The solution of the inequality cannot be determined due to limitation\n",
      "        in :func:`sympy.solvers.solveset.solvify`.\n",
      "    \n",
      "    Notes\n",
      "    =====\n",
      "    \n",
      "    Currently, we cannot solve all the inequalities due to limitations in\n",
      "    :func:`sympy.solvers.solveset.solvify`. Also, the solution returned for trigonometric inequalities\n",
      "    are restricted in its periodic interval.\n",
      "    \n",
      "    See Also\n",
      "    ========\n",
      "    \n",
      "    sympy.solvers.solveset.solvify: solver returning solveset solutions with solve's output API\n",
      "    \n",
      "    Examples\n",
      "    ========\n",
      "    \n",
      "    >>> from sympy import solve_univariate_inequality, Symbol, sin, Interval, S\n",
      "    >>> x = Symbol('x')\n",
      "    \n",
      "    >>> solve_univariate_inequality(x**2 >= 4, x)\n",
      "    ((2 <= x) & (x < oo)) | ((-oo < x) & (x <= -2))\n",
      "    \n",
      "    >>> solve_univariate_inequality(x**2 >= 4, x, relational=False)\n",
      "    Union(Interval(-oo, -2), Interval(2, oo))\n",
      "    \n",
      "    >>> domain = Interval(0, S.Infinity)\n",
      "    >>> solve_univariate_inequality(x**2 >= 4, x, False, domain)\n",
      "    Interval(2, oo)\n",
      "    \n",
      "    >>> solve_univariate_inequality(sin(x) > 0, x, relational=False)\n",
      "    Interval.open(0, pi)\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(solve_univariate_inequality)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 278,
   "id": "d9df5495",
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'solvify' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m/tmp/ipykernel_67983/360151027.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mhelp\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msolvify\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m: name 'solvify' is not defined"
     ]
    }
   ],
   "source": [
    "help(solvify)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 279,
   "id": "d75ecfc9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( 150, \\  100\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(150, 100)}"
      ]
     },
     "execution_count": 279,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([2*x+4*y-700,3*x+2*y-650],[x,y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 281,
   "id": "5c5998fc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(-\\infty, \\frac{1}{3}\\right)$"
      ],
      "text/plain": [
       "Interval.open(-oo, 1/3)"
      ]
     },
     "execution_count": 281,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset(1-3*x>0,x,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 282,
   "id": "c3a7db40",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left(-\\infty, \\frac{2}{3} - \\frac{a}{3}\\right)$"
      ],
      "text/plain": [
       "Interval.open(-oo, 2/3 - a/3)"
      ]
     },
     "execution_count": 282,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "solveset((3*x+a)/2<1,x,Reals)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 283,
   "id": "47c69c9a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5666666666666667"
      ]
     },
     "execution_count": 283,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "17/30"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 284,
   "id": "f4e411a2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\left\\{\\left( \\frac{175}{2}, \\  - \\frac{75}{2}\\right)\\right\\}$"
      ],
      "text/plain": [
       "{(175/2, -75/2)}"
      ]
     },
     "execution_count": 284,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "linsolve([x+y-50,21*x+25*y-900],[x,y])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 285,
   "id": "a4ad9360",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 285,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
